<template> 
    <Cascader style="width:220px" size="small" v-model="yearmodel" :change-on-select="typetrue" :data="yearlist" :load-data="loadData" @on-change="xuelistInfo">
    </Cascader>
    
</template>
<script>  
export default {
    props: {
        // 控制是否点击每一级返回值
        typetrue: {
            type: [Boolean],
            default: false
        },
        // 控制是否返回当前学年学期的ID
        typeback: {
            type: [Boolean],
            default: false
        },
        // 控制是否选中当前学年学期
        modeltrue: {
            type: [Boolean],
            default: true
        },
        // 控制是否是在修改页面使用，如果是把单挑查询的学年学期传进来
        infoselect:{
            type: [Array,Boolean],
            default: false
        },
    },
    data () {
        return {
                yearmodel:[],
                yearlist:[],//学年数据
            }
        },      
        methods: {   
            /************************************************************
             * 
             * 加载学年
             * 
             ************************************************************/        
            load() {      
                this.$http.get('api/semester/v1/schoolyear/info')
                .then(val=>{   
                    this.yearlist=this.process_year(val.data)          
                })
                .catch(err=>{
                    if(err.code && err.code==422) {
                        this.$Message.info(this.$t('gaoyanyear'));
                    }                          
                })  
            },
            
            /************************************************************
             * 
             * 学年处理数据
             * 
             ************************************************************/ 
            process_year(data) {
                let arr = []
                data.forEach(item => {
                    arr.push({
                        value : item.schoolyear_id,
                        label : item.schoolyear_name.zh?item.schoolyear_name.zh:item.schoolyear_name.mn,
                        children : [],
                        loading: false,
                        type: 'year'
                    })
                })
                return arr
            },
            
            /************************************************************
             * 
             * 异步加载数据
             * 
             ************************************************************/ 
            loadData(item, callback) {
                item.loading = true;
                // 点击的学年
                if(item.type == 'year'){
                    this.$http.get('api/semester/v1/semester/all_semester?schoolyear_id='+item.value)
                    .then(response=>{    
                        setTimeout(() => {
                            if(response.data.length!==0){
                                item.children=[]
                                response.data.forEach(item1 => {
                                    item.children.push({
                                        value : item1.semester_id,
                                        label : item1.semester_name.zh?item1.semester_name.zh:item1.semester_name.mn,
                                        type:'year'
                                    })
                                }) 
                            }else{ 
                                item.children.push({
                                    value : '',
                                    label : '',
                                    type:'year'
                                })
                            }
                            item.loading = false;
                            callback();
                        }, 1000);       
                    })
                    .catch(err=>{
                        if(err.code && err.code==422) {
                            this.$Message.info(this.$t('gaoyansemester'));
                        }                          
                    })

                }
                    
            },
            
            /************************************************************
             * 
             * 点击学年学期显示数据
             * 
             ************************************************************/ 
            xuelistInfo(value){ 
                if(this.typetrue==false && this.typeback==false){
                    this.$emit('on-select',value[1])
                }else{
                    this.$emit('on-select',value)
                }
            },
        },
        mounted(){
            this.load()
            /************************************************************
             * 
             * 加载当前学年学期
             * 
             ************************************************************/ 
            if(this.modeltrue==true){ 
                this.$http.get('api/semester/v1/semester/now_semester')
                .then(val=>{   
                    this.yearmodel=[val.data[0].schoolyear_id,val.data[1].semester_id]
                    this.$emit('on-selectnow',this.yearmodel)
                })
                .catch(err=>{
                    if(err.code && err.code==422) {
                        this.$Message.info(err.message);
                    }                          
                })  
            }else{
                if(this.infoselect!=false){
                    this.yearmodel=this.infoselect
                }else{
                    this.yearmodel=[]
                }
            }
        },
        // created(){
        //     this.load()
        //     this.$http.get('api/semester/v1/semester/now_semester').then(val=>{
        //         // console.log(222)
        //         // console.log(this.typetrue)
        //         this.yearmodel=[val.data[0].schoolyear_id,val.data[1].semester_id]
        //         // console.log(this.yearmodel)

        //     })
        // }
}
</script>